package com.tledu.io;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class IO03 {
    public static void main(String[] args) {
        // 演示一下字符流的读写
        String fileName = "C:\\Users\\cyrus\\Desktop\\大数据17期\\study-java\\src\\com\\tledu\\io\\test";
//        writeFile(fileName,"天亮教育 \n 尚云科技");
        System.out.println(readFile(fileName));
    }

    /**
     * 方法做什么的。 读取文件
     * 输入： 文件地址
     * 输入： 文件内容
     *
     * @return
     */
    public static String readFile(String path) {
        FileReader reader = null;
        String result = "";
        try {
            reader = new FileReader(path);
            // 拼接成一个完整的字符串
            while (true) {
                int item = reader.read();
                if (item == -1) {
                    //循环应该结束
                    break;
                }
                // 代表还没结束，读取到了一个字符
                char charItem = (char) item;
                result += charItem;
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 不管有没有异常都会执行的方法
            // 在这里需要关闭这个流
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }

    /**
     * 写操作
     * 文件地址
     * 写入的内容
     */
    public static void writeFile(String path, String content) {
        /**
         * 1. 创建FileWriter对象
         * 2. 通过FileWriter的write可以写入一些字符
         * 3. 记得关闭流
         */
        FileWriter fileWriter = null;
        try {
            fileWriter = new FileWriter(path);
            fileWriter.write(content);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                // 清除缓冲区
                fileWriter.flush();
                fileWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}
